package com.itfreer.xjmh.security.entity;

import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.itfreer.bpm.model.BpmBaseEntity;
import com.itfreer.form.api.reflect.DictionaryField;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Transient;

/**
 * 定义安保人员实体
 */
@Entity(name = "t_security_person")
public class SecurityPersonEntity extends BpmBaseEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 主键
	 */
	@Id
	@Column(name = "id", length = 50, nullable = false)
	private String id;

	/**
	 * 姓名
	 */
	@Column(name = "name", length = 50, nullable = true)
	private String name;


	/**
	 * 生日
	 */
	@Column(name = "birthday", nullable = true)
	private java.util.Date birthday;

	/**
	 * 参加工作时间
	 */
	@Column(name = "enter_time", nullable = true)
	private java.util.Date enterTime;

	/**
	 * 性别---字典
	 */
	@Column(name = "gender", length = 50, nullable = true)
	@DictionaryField(dictionaryName = "p_gender", toFieldName = "genderName")
	private String gender;

	@Transient
	private String genderName;



	/**
	 * 身份证
	 */
	@Column(name = "id_card", length = 255, nullable = false, unique = true)
	private String idCard;


	/**
	 * 单位---对应所属机场字典
	 */
	@Column(name = "unit", length = 255, nullable = true)
	@DictionaryField(dictionaryName = "zd_airport", toFieldName = "unitName")
	private String unit;

	@Transient
	private String unitName;


	/**
	 * 部门---对应部门表外键
	 */
	@Column(name = "department", length = 255, nullable = true)
	@DictionaryField(dictionaryName = "dic_department", toFieldName = "departmentName")
	private String department;

	@Transient
	private String departmentName;

	/**
	 * 职位
	 */
	@Column(name = "position", length = 255, nullable = true)
	@DictionaryField(dictionaryName = "p_position", toFieldName = "positionName")
	private String position;

	@Transient
	private String positionName;


	/**
	 * 工种---字典
	 */
	@Column(name = " work_type", length = 50, nullable = true)
	@DictionaryField(dictionaryName = "p_work_type", toFieldName = "workTypeName")
	private String workType;

	@Transient
	private String workTypeName;


	/**
	 * 职业资质情况---字典
	 */
	@Column(name = "qualification", length = 50, nullable = true)
	@DictionaryField(dictionaryName = "p_qualification", toFieldName = "qualificationName")
	private String qualification;

	@Transient
	private String qualificationName;

	/**
	 * 获取资质时间
	 */
	@Column(name = "qualification_time", nullable = true)
	private java.util.Date qualificationTime;

	/**
	 * 资质复训时间
	 */
    @JsonFormat(pattern="yyyy-MM-dd", locale="zh", timezone="GMT+8")
	@Column(name = "re_qualification_time", nullable = true)
	private java.util.Date reQualificationTime;

	/**
	 * 资质复训结论---字典
	 */
	@Column(name = "re_qualification_result", length = 50, nullable = true)
	@DictionaryField(dictionaryName = "p_requalification_result", toFieldName = "reQualificationResultName")
	private String reQualificationResult;

	@Transient
	private String reQualificationResultName;


	/**
	 * 流程实例ID
	 */
	@Column(name = "s_exeid", length = 50, nullable = true)
	private String exeid;

	/**
	 * 流程状态
	 */
	@Column(name = "s_bpmState", length = 50, nullable = true)
	private String bpmState;

	/**
	 * 租户ID
	 */
	@Column(name = "s_tenantID", length = 50, nullable = true)
	private String tenantID;

	/**
	 * 租户名称
	 */
	@Column(name = "s_tenantName", length = 50, nullable = true)
	private String tenantName;




	/**
	 * 主键
	 */
	@Override
	public String getId() {
		return id;
	}

	/**
	 * 主键
	 */
	@Override
	public void setId(String value) {
		this.id = value;
	}


	/**
	 * 姓名
	 */
	public String getName() {
		return name;
	}

	/**
	 * 姓名
	 */
	public void setName(String value) {
		this.name = value;
	}


	/**
	 * 生日
	 */
	public java.util.Date getBirthday() {
		return birthday;
	}

	/**
	 * 生日
	 */
	public void setBirthday(java.util.Date value) {
		this.birthday = value;
	}
	/**
	 * 参加工作时间
	 */
	public java.util.Date getEnterTime() {
		return enterTime;
	}

	/**
	 * 参加工作时间
	 */
	public void setEnterTime(java.util.Date value) {
		this.enterTime = value;
	}
	/**
	 * 性别---字典
	 */
	public String getGender() {
		return gender;
	}

	/**
	 * 性别---字典
	 */
	public void setGender(String value) {
		this.gender = value;
	}


	/**
	 * 身份证
	 */
	public String getIdCard() {
		return idCard;
	}

	/**
	 * 身份证
	 */
	public void setIdCard(String value) {
		this.idCard = value;
	}


	/**
	 * 单位---对应单位表外键
	 */
	public String getUnit() {
		return unit;
	}

	/**
	 * 单位---对应单位表外键
	 */
	public void setUnit(String value) {
		this.unit = value;
	}


	/**
	 * 部门---对应部门表外键
	 */
	public String getDepartment() {
		return department;
	}

	/**
	 * 部门---对应部门表外键
	 */
	public void setDepartment(String value) {
		this.department = value;
	}


	/**
	 * 职位
	 */
	public String getPosition() {
		return position;
	}

	/**
	 * 职位
	 */
	public void setPosition(String value) {
		this.position = value;
	}


	/**
	 * 工种---字典
	 */
	public String getWorkType() {
		return workType;
	}

	/**
	 * 工种---字典
	 */
	public void setWorkType(String value) {
		this.workType = value;
	}


	/**
	 * 职业资质情况---字典
	 */
	public String getQualification() {
		return qualification;
	}

	/**
	 * 职业资质情况---字典
	 */
	public void setQualification(String value) {
		this.qualification = value;
	}


	/**
	 * 获取资质时间
	 */
	public java.util.Date getQualificationTime() {
		return qualificationTime;
	}

	/**
	 * 获取资质时间
	 */
	public void setQualificationTime(java.util.Date value) {
		this.qualificationTime = value;
	}
	/**
	 * 资质复训时间
	 */
	public java.util.Date getReQualificationTime() {
		return reQualificationTime;
	}

	/**
	 * 资质复训时间
	 */
	public void setReQualificationTime(java.util.Date value) {
		this.reQualificationTime = value;
	}
	/**
	 * 资质复训结论---字典
	 */
	public String getReQualificationResult() {
		return reQualificationResult;
	}

	/**
	 * 资质复训结论---字典
	 */
	public void setReQualificationResult(String value) {
		this.reQualificationResult = value;
	}

	public String getGenderName() {
		return genderName;
	}

	public void setGenderName(String genderName) {
		this.genderName = genderName;
	}

	public String getUnitName() {
		return unitName;
	}

	public void setUnitName(String unitName) {
		this.unitName = unitName;
	}

	public String getDepartmentName() {
		return departmentName;
	}

	public void setDepartmentName(String departmentName) {
		this.departmentName = departmentName;
	}

	public String getPositionName() {
		return positionName;
	}

	public void setPositionName(String positionName) {
		this.positionName = positionName;
	}

	public String getWorkTypeName() {
		return workTypeName;
	}

	public void setWorkTypeName(String workTypeName) {
		this.workTypeName = workTypeName;
	}

	public String getQualificationName() {
		return qualificationName;
	}

	public void setQualificationName(String qualificationName) {
		this.qualificationName = qualificationName;
	}

	public String getReQualificationResultName() {
		return reQualificationResultName;
	}

	public void setReQualificationResultName(String reQualificationResultName) {
		this.reQualificationResultName = reQualificationResultName;
	}

	@Override
	@Transient
	public String getProName() {
		// TODO 根据实际情况调整
		return "安保人员审批";
	}

	@Override
	public String getBpmState() {
		return bpmState;
	}

	@Override
	public void setBpmState(String arg0) {
		bpmState = arg0;
	}

	@Override
	public String getExeid() {
		return exeid;
	}

	@Override
	public void setExeid(String arg0) {
		exeid = arg0;
	}

	/**
	 * 租户ID
	 */
	@Override
	public String getTenantID() {
		return tenantID;
	}

	/**
	 * 租户ID
	 */
	@Override
	public void setTenantID(String tenantID) {
		this.tenantID = tenantID;
	}

	/**
	 * 租户名称
	 */
	@Override
	public String getTenantName() {
		return tenantName;
	}

	/**
	 * 租户名称
	 */
	@Override
	public void setTenantName(String tenantName) {
		this.tenantName = tenantName;
	}



}
